Generación de clave
Introducción
En el sistema se utilizan claves ECDSA para la firma de los JWTs de autenticación. Las claves ECDSA son utilizadas por su seguridad y ligera en relación a las claves RSA tradicionales. Encomparação, una clave ECDSA de 256 bits es tan segura como una clave RSA de 3084 bits.
Una clave ECDSA está formada por dos partes: la clave privada y la clave pública. Cada una de ellas tiene una función definida:
- Chave Privada: La clave privada se utilizará para la firma de susJWTs, antes de enviarlos al servidor de autenticación.
- Chave Pública: La clave pública será utilizada por el servidor de autenticación para que el origen del token sea verificado como legítimo.
Para la generación de un par de claves, algún toolkit de cifrado debe estar instalado en su máquina. En el transcurso de este tutorial, utilizaremosOpenSSL, una alternativa Open Source para la generación de claves criptográficas.
Instalando OpenSSL
Linux:
OpenSSL es una herramienta nativa en la mayor parte de las distribuciones Linux. No hay necesidad de instalarlo. Utilice OpenSSL a través de la ordenopensslen la terminal.
MacOS:
En la mayoría de los casos, OpenSSL estará instalado. Si la ordenopensslno existe, lo instale a través de Homebrew de la siguiente forma:
- ConHomebrewinstalado en una terminal, escriba la orden abajo
brew install openssl@1.1- Después de la instalación, utilice OpenSSL a través de la orden
opensslen la terminal.
Windows:
El paquete OpenSSL es una de las dependencias de la instalación de git para Windows. Después de instalar, utilice OpenSSL a través de la ordenopensslen la terminal git.
Generando claves ECDSA
Para generar una clave privada ECDSA, ejecute la siguiente orden en OpenSSL:
openssl ecparam -name secp256k1 -genkey -noout -out priv-key.pem- ecparam: Generación de clave por curva elíptica con parámetros
- name secp256k1: Nombre del algoritmo de generación de clave
- genkey: Parámetro utilizado para generar una clave
- noout: Parámetro utilizado para que OpenSSL no añada una versión codificada de los parámetros de generación de la clave en el archivo .pem
- out priv-key. pem: Parámetro utilizado para definir el nombre del archivo donde se guardará la clave
Puede comprobar su clave recién creada utilizando la ordencaten el archivopriv-key.pem. La clave debe parecerse a continuación:``` -----BEGIN EC PRIVATE KEY----- MHQCAQEEID+WM4WfWmD9ORXXRz5jUjQerHro6CTpeG9M0fDTEAT3oAcGBSuBBAAK oUQDQgAEalizNT3hu7qU56JQ4L1goFrRL11/c7gvTVBWYvXY52UQgFPUDgIrBtAl iaRmnJZFmJim7FTzqG8ZZ5eQdEzu2Q== -----END EC PRIVATE KEY-----
Para derivar la clave pública de la clave privada utilizando OpenSSL, ejecute:
```shell
openssl ec -in priv-key.pem -pubout > pub-key.pem- ec: Análisis de curva elíptica
- -in priv-key. pem: Parámetro utilizado para indicar la fuente de la clave a ser analizada
- -pubout: Parámetro utilizado para indicar que la salida debe ser una clave pública
- pub-key.pem: Directorio de salida para el archivo
pub-key.pemPuede comprobar su clave recién creada utilizando la ordencaten el archivopub-key.pem. La clave pública generada debe parecerse con:``` -----BEGIN PUBLIC KEY----- MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEalizNT3hu7qU56JQ4L1goFrRL11/c7gv TVBWYvXY52UQgFPUDgIrBtAliaRmnJZFmJim7FTzqG8ZZ5eQdEzu2Q== -----END PUBLIC KEY-----
## Consideraciones Finales
La generación y la gestión adecuada de las claves ECDSA son fundamentales para la seguridad del sistema. Mantenga sus claves privadas en un lugar seguro y utilice solo la clave pública para configurar el sistema.
## Lea también
- [Comunicação entre Servidor ACS e CPE](./comunicacao%20entre%20servidor%20acs%20e%20cpe)